Distance CorrelationとPartial Distance Correlation について
概要
pearsonの相関係数は線形な関係しか捉えることが出来ない.
そこで, 点同士の距離を用いたDistance Correlationという相関係数が提案された.
さらに, Distance Correlationを拡張し, 内積の期待値が共分散の二乗となるようなヒルベルト空間を定義したPartial Distance Correlationが提案されている. (Székelys, 2014) Partial Distance Correlationを使うと, 条件付けした相関係数$ \mathcal{R}(X|Z, Y|Z)=\mathcal{R}^* (X,Y;Z)を計算することができる
Distance Correlation
$ a_{k,l} = \|X_k-X_l\|, \quad \bar{a}_{k, \cdot}=\frac{1}{n}\sum_{l=1}^n a_{k,l}, \quad \bar{a}_{\cdot, l}=\frac{1}{n} \sum_{k=1}^n a_{k,l}, \quad \bar{a}_{\cdot, \cdot} = \frac{1}{n^2} \sum_{k,l=1}^n a_{k,l}, \quad
としたとき
$ A_{k,l} = a_{k,l} - \bar{a}_{k,\cdot} -\bar{a}_{\cdot, l} + \bar{a}_{\cdot, \cdot}
をDistance Matrixと呼ぶ
このときDistance Matrix$ Aを用いて, 以下をDistance Correlationと定義する
$ \mathcal{R}_n^2(x, y) = \left\{ \begin{array}{cl} \frac{\mathcal{V}_n^2(x, y)}{\sqrt{\mathcal{V}_n^2(x, x)\mathcal{V}_n^2(y, y)}} &, \mathcal{V}_n^2(x, x)\mathcal{V}_n^2(y, y) > 0\\ 0 &, \mathcal{V}_n^2(x, x)\mathcal{V}_n^2(y, y) = 0 \end{array} \right.
ただし, $ \mathcal{V}_n^2(x, y) = \frac{1}{n^2} \sum_{k,l=1}^n A_{k,l} B_{k,l}, \quad \mathcal{V}_n^2(x, x) = \frac{1}{n^2} \sum_{k,l=1}^n A_{k,l}^2
分散は一般に平均周りの二次モーメントなので, アナロジー的に平均が0になる必要がある
Distance Matrix$ Aは要素の行, 列, 全体の平均が0になるので平均周りのモーメントっぽい挙動を振る舞う
pearsonは線形な関係しか見ていないのに対して, DCは距離に応じた関係を捉えている. (下図)
https://gyazo.com/bfee8d89b6ee336d532e9d61e209f66d
https://gyazo.com/35e70be9125fd332772d9bfc9d44ff78
Distance Correlationと機械学習
モデルXのある層における出力$ x \in \mathbb{R}^{B\times d_X} とモデルYのある層における出力$ x \in \mathbb{R}^{B\times d_Y}との類似度を計算することができる
注意すべき点として, $ x \in \mathbb{R}^{B\times d}はd次元の出力がB個存在する状態なので, Distance Matrix は$ B\times Bになることに注意
嬉しいことに, Distance Matrix が$ B\times Bになるので, モデルX, Yの出力次元が違っても ($ d_X \neq d_Y)相関を計算することができる
Partial Distance Correlation の導入
まず, Distance Matrix$ Aを以下のように拡張した$ \tilde{A}を定義する.
$ \tilde{a}_{kl} = \left\{ \begin{array}{cl}\displaystyle a_{k,l} - \frac{1}{n-2}\sum_{i=1}^n a_{i,l} - \frac{1}{n-2}\sum_{j=1}^n a_{k,j} + \frac{1}{(n-1)(n-2)}\sum_{i,j=1}^n a_{i,j} &, k\neq l\\ 0 &, k=l \end{array} \right.
このとき, 内積 $ (\tilde{A}\cdot \tilde{B})を以下のように定義.
$ (\tilde A \cdot \tilde B) := \frac{1}{n(n-3)} \sum_{k\neq l} \tilde A_{k,l} \tilde B_{k,l}
すると, この内積の期待値は$ \mathcal{V}^2(x,y)と一致する (証明は論文参照)
論文ではunbiased estimator of squared population distance covariance (不偏推定量) と呼んでいる
上のような$ \tilde{A}を定義すると,
1. 要素の行と列の平均がそれぞれ0になる
2. $ \tilde{(\tilde{A})} = \tilde{A}となる
3. $ \tilde{A}はdouble centeringに対して不変である
補足 : double centering について
単位行列$ Iと全ての成分が1の$ n \times n行列$ Jについて
$ \left( I-\frac{1}{n}J \right)A\left( I-\frac{1}{n}J \right)を計算することをdouble centeringと呼ぶ
double centeringによって, 行と列の平均はそれぞれ0となる
要は $ x - \bar{x}と同じこと
Partial Distance Correlation
要は隠れ変数$ zが存在するような状態での相関係数を計算したい
すなわち, $ \mathcal{R}(X|Z, Y|Z)=\mathcal{R}^* (X,Y;Z)を計算したい
コイツを計算するには, まずX, YをZに射影したものを用意する必要がある
上のような内積が定義されたヒルベルト空間 $ \mathcal{H}_nにおいて, サンプル$ x,y,zにおけるDistance Matrix $ \tilde{A}, \tilde{B}, \tilde{C} \in \mathcal{H}_nについて
$ P_{z^{\perp}}(x) = \tilde A - \frac{(\tilde A \cdot \tilde C)}{(\tilde C \cdot \tilde C)}\tilde C, \quad P_{z^{\perp}}(y) = \tilde B - \frac{(\tilde B \cdot \tilde C)}{(\tilde C \cdot \tilde C)}\tilde C
をそれぞれ $ \tilde A(x)を $ (\tilde C(z))^{\perp}に射影したもの, $ \tilde B(y)を $ (\tilde C(z))^{\perp}に射影したものとする.
すると, $ {\mathcal{R}^*}^2(x,y;z)は以下のように定義される.
$ {\mathcal{R}^*}^2(x,y;z) := \frac{(P_{z^{\perp}}(x) \cdot P_{z^{\perp}}(y))}{\|P_{z^{\perp}}(x)\| \|P_{z^{\perp}}(y)\|}
ちなみにpartial distance covarianceは以下のように定義される.
$ \text{pdCov}(x,y;z)= (P_{z^{\perp}}(x) \cdot P_{z^{\perp}}(y))= \frac{1}{n(n-3)}\sum_{i\neq j} \left(P_{z^{\perp}}(x) \right)_{i,j}\left(P_{z^{\perp}}(y)\right)_{i,j}
Partial Distance Correlationと機械学習
$ \mathcal{R}^2\left( (X|Y),GT\right)を計算すると, モデル$ Yを前提としたモデル$ XについてGTとの相関を計算することができる.
つまるところ, モデルYが学習した情報を取り除いた状態の$ XとGTの相関を計算することができる
どうやって計算するかというと, $ Xを$ Yに射影すれば良い.
すなわち, $ P_{y^{\perp}}(x) = \tilde X - \frac{(\tilde X \cdot \tilde Y)}{(\tilde Y \cdot \tilde Y)}\tilde Yを用いて$ \mathcal{R}^2\left( (X|Y),GT\right)を計算する.